count While
Counts continuous characters in this string that match the given predicate.
Samples
import dev.kikugie.commons.text.countMatching
import dev.kikugie.commons.text.countWhile
import dev.kikugie.commons.text.getOrDefault
import dev.kikugie.commons.text.isEnglishLetter
import dev.kikugie.commons.text.isEnglishLetterOrDigit
import dev.kikugie.commons.text.reverseView
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue
fun main() {
//sampleStart
assertEquals(0, "\n hello!".countWhile(Char::isLetter))
assertEquals(2, "\n hello!".countWhile(Char::isWhitespace))
assertEquals(5, "\n hello!".countWhile(start = 2, end = 7, Char::isLetter))
//sampleEnd
}Counts continuous characters in this string that match the given predicate. The count goes withing the given range, which is coerced to the string boundaries.
Samples
import dev.kikugie.commons.text.countMatching
import dev.kikugie.commons.text.countWhile
import dev.kikugie.commons.text.getOrDefault
import dev.kikugie.commons.text.isEnglishLetter
import dev.kikugie.commons.text.isEnglishLetterOrDigit
import dev.kikugie.commons.text.reverseView
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue
fun main() {
//sampleStart
assertEquals(0, "\n hello!".countWhile(Char::isLetter))
assertEquals(2, "\n hello!".countWhile(Char::isWhitespace))
assertEquals(5, "\n hello!".countWhile(start = 2, end = 7, Char::isLetter))
//sampleEnd
}inline fun CharSequence.countWhile(start: Int = 0, end: Int = length, predicate: (Char) -> Boolean): Int(source)
Counts continuous characters in this string that match the given predicate. The count goes from start to end (exclusive), which cover the full string by default and coerce to its boundaries.
Samples
import dev.kikugie.commons.text.countMatching
import dev.kikugie.commons.text.countWhile
import dev.kikugie.commons.text.getOrDefault
import dev.kikugie.commons.text.isEnglishLetter
import dev.kikugie.commons.text.isEnglishLetterOrDigit
import dev.kikugie.commons.text.reverseView
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue
fun main() {
//sampleStart
assertEquals(0, "\n hello!".countWhile(Char::isLetter))
assertEquals(2, "\n hello!".countWhile(Char::isWhitespace))
assertEquals(5, "\n hello!".countWhile(start = 2, end = 7, Char::isLetter))
//sampleEnd
}